package com.medical.system.model;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.medical.system.base.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.List;

/**
 * <p>
 * 菜单管理
 * </p>
 *
 * @author 风花雪月
 * @since 2024-08-02
 */
@Data
@ApiModel("菜单")
@TableName("sys_menu")
public class SysMenu extends BaseEntity {

    private static final long serialVersionUID = 1L;


    /**
     * 父菜单ID，一级菜单为0
     */
    @ApiModelProperty("父级菜单")
    @TableField("parent_id")
    private Long parentId;

    /**
     * 菜单名称
     */
    @ApiModelProperty("菜单名称")
    @TableField("name")
    private String name;

    /**
     * 类型   0：目录   1：菜单   2：按钮
     */
    @ApiModelProperty("菜单类型")
    @TableField("type")
    private Integer type;

    /**
     * 菜单地址
     */
    @ApiModelProperty("菜单地址")
    @TableField("path")
    private String path;

    /**
     * 组件路径
     */
    @ApiModelProperty("组件路径")
    @TableField("component")
    private String component;

    /**
     * 授权(多个用逗号分隔，如：user:list,user:create)
     */
    @ApiModelProperty("授权")
    @TableField("perms")
    private String perms;

    /**
     * 菜单图标
     */
    @ApiModelProperty("菜单图标")
    @TableField("icon")
    private String icon;

    /**
     * 排序
     */
    @ApiModelProperty("排序")
    @TableField("sort_value")
    private Integer sortValue;

    /**
     * 状态（1可用）
     */
    @ApiModelProperty("菜单状态")
    @TableField("status")
    private Integer status;

    // 下级列表
    @ApiModelProperty("下级列表")
    @TableField(exist = false)
    private List<SysMenu> children;
    //是否选中
    @TableField(exist = false)
    private boolean isSelect;
}
